[INFO] cloning repository https://github.com/yanuz93/pingora-simple-proxy-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yanuz93/pingora-simple-proxy-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyanuz93%2Fpingora-simple-proxy-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyanuz93%2Fpingora-simple-proxy-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 42d674bd7dbbfe5cfe0c2602f064b021a2fc42a1
[INFO] checking yanuz93/pingora-simple-proxy-server against master#82310651b93a594a3fd69015e1562186a080d94c for pr-145770
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyanuz93%2Fpingora-simple-proxy-server" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yanuz93/pingora-simple-proxy-server
[INFO] finished tweaking git repo https://github.com/yanuz93/pingora-simple-proxy-server
[INFO] tweaked toml for git repo https://github.com/yanuz93/pingora-simple-proxy-server written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yanuz93/pingora-simple-proxy-server on toolchain 82310651b93a594a3fd69015e1562186a080d94c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yanuz93/pingora-simple-proxy-server already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cmake v0.1.52
[INFO] [stderr]   Downloaded metrics-exporter-prometheus v0.16.0
[INFO] [stderr]   Downloaded metrics-util v0.18.0
[INFO] [stderr]   Downloaded aws-lc-rs v1.11.1
[INFO] [stderr]   Downloaded libz-ng-sys v1.1.20
[INFO] [stderr]   Downloaded libc v0.2.166
[INFO] [stderr]   Downloaded aws-lc-sys v0.23.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dcdfd04aa9e5f761d138b47ba4a880aabbca71496454142afb122f80ea8f36ee
[INFO] running `Command { std: "docker" "start" "-a" "dcdfd04aa9e5f761d138b47ba4a880aabbca71496454142afb122f80ea8f36ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dcdfd04aa9e5f761d138b47ba4a880aabbca71496454142afb122f80ea8f36ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dcdfd04aa9e5f761d138b47ba4a880aabbca71496454142afb122f80ea8f36ee", kill_on_drop: false }`
[INFO] [stdout] dcdfd04aa9e5f761d138b47ba4a880aabbca71496454142afb122f80ea8f36ee
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 686006a1d4500b9a8200c0d09587fd9e18753b75d1e2332d94a9bad794e49120
[INFO] running `Command { std: "docker" "start" "-a" "686006a1d4500b9a8200c0d09587fd9e18753b75d1e2332d94a9bad794e49120", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling libc v0.2.166
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking once_cell v1.20.2
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking pin-project-lite v0.2.15
[INFO] [stderr]     Checking bytes v1.8.0
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking itoa v1.0.14
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking equivalent v1.0.1
[INFO] [stderr]     Checking foldhash v0.1.3
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking allocator-api2 v0.2.20
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling httparse v1.9.5
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]    Compiling serde v1.0.215
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking litemap v0.7.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking ryu v1.0.18
[INFO] [stderr]    Compiling aws-lc-rs v1.11.1
[INFO] [stderr]     Checking rustls-pki-types v1.10.0
[INFO] [stderr]    Compiling rustversion v1.0.18
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking adler2 v2.0.0
[INFO] [stderr]    Compiling cc v1.2.1
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling syn v2.0.89
[INFO] [stderr]     Checking indexmap v2.6.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]    Compiling rust_decimal v1.36.0
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]     Checking icu_locid_transform_data v1.5.0
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]     Checking miniz_oxide v0.8.0
[INFO] [stderr]     Checking object v0.36.5
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking icu_properties_data v1.5.0
[INFO] [stderr]     Checking os_str_bytes v6.6.1
[INFO] [stderr]    Compiling prometheus v0.13.4
[INFO] [stderr]     Checking rustc-demangle v0.1.24
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking pingora-error v0.4.0
[INFO] [stderr]    Compiling openssl v0.10.68
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking pingora-http v0.4.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking brotli-decompressor v2.5.1
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking crossbeam-queue v0.3.11
[INFO] [stderr]     Checking crossbeam-channel v0.5.12
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking textwrap v0.16.1
[INFO] [stderr]     Checking data-encoding v2.6.0
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]    Compiling rustls v0.23.19
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking icu_normalizer_data v1.5.0
[INFO] [stderr]     Checking match_cfg v0.1.0
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking hostname v0.3.1
[INFO] [stderr]    Compiling cmake v0.1.52
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rmp v0.8.14
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking daemonize v0.5.0
[INFO] [stderr]     Checking sfv v0.9.4
[INFO] [stderr]     Checking unicase v2.8.0
[INFO] [stderr]     Checking raw-cpuid v11.2.0
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]    Compiling serde_json v1.0.133
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking rustls-native-certs v0.8.1
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking overload v0.1.1
[INFO] [stderr]     Checking ipnet v2.10.1
[INFO] [stderr]     Checking sketches-ddsketch v0.3.0
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking nu-ansi-term v0.46.0
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]    Compiling aws-lc-sys v0.23.1
[INFO] [stderr]    Compiling openssl-sys v0.9.104
[INFO] [stderr]    Compiling libz-ng-sys v1.1.20
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking brotli v3.5.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking quanta v0.12.3
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking backtrace v0.3.74
[INFO] [stderr]    Compiling trackable_derive v1.0.0
[INFO] [stderr]    Compiling clap_derive v3.2.25
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]     Checking trackable v1.3.0
[INFO] [stderr]     Checking trackable v0.2.24
[INFO] [stderr]     Checking thrift_codec v0.1.1
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]     Checking tokio v1.41.1
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling serde_derive v1.0.215
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking zstd v0.13.2
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking clap v3.2.25
[INFO] [stderr]    Compiling async-trait v0.1.83
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking pingora-header-serde v0.4.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking metrics v0.24.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking metrics-util v0.18.0
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking rustracing v0.5.1
[INFO] [stderr]     Checking pingora-lru v0.4.0
[INFO] [stderr]     Checking rustracing_jaeger v0.7.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking tokio-util v0.7.12
[INFO] [stderr]     Checking pingora-timeout v0.4.0
[INFO] [stderr]     Checking tokio-stream v0.1.16
[INFO] [stderr]     Checking pingora-runtime v0.4.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking pingora-pool v0.4.0
[INFO] [stderr]     Checking h2 v0.4.7
[INFO] [stderr]     Checking flate2 v1.0.35
[INFO] [stderr]     Checking tokio-test v0.4.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking serde_yaml v0.8.26
[INFO] [stderr]     Checking rmp-serde v1.3.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking hyper v1.5.1
[INFO] [stderr]     Checking pingora-core v0.4.0
[INFO] [stderr]     Checking rustls-webpki v0.102.8
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.9
[INFO] [stderr]     Checking pingora-cache v0.4.0
[INFO] [stderr]     Checking pingora-proxy v0.4.0
[INFO] [stderr]     Checking tokio-rustls v0.26.0
[INFO] [stderr]     Checking hyper-rustls v0.27.3
[INFO] [stderr]     Checking metrics-exporter-prometheus v0.16.0
[INFO] [stderr]     Checking pingora v0.4.0
[INFO] [stderr]     Checking proxy-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0428]: the name `CacheLayer` is defined multiple times
[INFO] [stdout]    --> src/main.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 105 | struct CacheLayer {
[INFO] [stdout]     | ----------------- previous definition of the type `CacheLayer` here
[INFO] [stdout] ...
[INFO] [stdout] 222 | struct CacheLayer {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ `CacheLayer` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CacheLayer` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `CacheLayer` is defined multiple times
[INFO] [stdout]    --> src/main.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 105 | struct CacheLayer {
[INFO] [stdout]     | ----------------- previous definition of the type `CacheLayer` here
[INFO] [stdout] ...
[INFO] [stdout] 222 | struct CacheLayer {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ `CacheLayer` redefined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CacheLayer` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]    --> src/main.rs:224:26
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pool: deadpool::Pool<deadpool::managed::Object<CacheConnection>>,
[INFO] [stdout]     |                          ^^^^^^^^ use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `deadpool`, use `cargo add deadpool` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]    --> src/main.rs:234:20
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let pool = deadpool::Pool::builder()
[INFO] [stdout]     |                    ^^^^^^^^ use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `deadpool`, use `cargo add deadpool` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `upstream_peer` is not a member of trait `HttpModule`
[INFO] [stdout]    --> src/main.rs:611:5
[INFO] [stdout]     |
[INFO] [stdout] 611 |     #[instrument(skip(self, session))]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `HttpModule`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the attribute macro `instrument` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Cache` in this scope
[INFO] [stdout]    --> src/main.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 |     cache: Cache<String, Vec<u8>>,
[INFO] [stdout]     |            ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `EnhancedServiceDiscovery` in this scope
[INFO] [stdout]    --> src/main.rs:146:6
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl EnhancedServiceDiscovery {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^ help: a struct with a similar name exists: `ServiceDiscovery`
[INFO] [stdout] ...
[INFO] [stdout] 463 | struct ServiceDiscovery {
[INFO] [stdout]     | ----------------------- similarly named struct `ServiceDiscovery` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Api` in this scope
[INFO] [stdout]    --> src/main.rs:153:23
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let services: Api<Service> = Api::namespaced(
[INFO] [stdout]     |                       ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Service` in this scope
[INFO] [stdout]    --> src/main.rs:153:27
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let services: Api<Service> = Api::namespaced(
[INFO] [stdout]     |                           ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 1   + use hyper::service::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::listening::Service;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Service` in this scope
[INFO] [stdout]    --> src/main.rs:176:23
[INFO] [stdout]     |
[INFO] [stdout] 176 |         services: Vec<Service>
[INFO] [stdout]     |                       ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 1   + use hyper::service::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::listening::Service;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Service` in this scope
[INFO] [stdout]    --> src/main.rs:194:50
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn create_instance_from_service(&self, svc: &Service) -> ProxyResult<Instance> {
[INFO] [stdout]     |                                                  ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 1   + use hyper::service::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::listening::Service;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Cache` in this scope
[INFO] [stdout]    --> src/main.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 223 |     cache: Cache<String, Arc<Vec<u8>>>,
[INFO] [stdout]     |            ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CacheConnection` in this scope
[INFO] [stdout]    --> src/main.rs:224:52
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pool: deadpool::Pool<deadpool::managed::Object<CacheConnection>>,
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 222 | struct CacheLayer<CacheConnection> {
[INFO] [stdout]     |                  +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `CacheManagerConfig` in this scope
[INFO] [stdout]    --> src/main.rs:236:20
[INFO] [stdout]     |
[INFO] [stdout] 78  | struct CachingConfig {
[INFO] [stdout]     | -------------------- similarly named struct `CachingConfig` defined here
[INFO] [stdout] ...
[INFO] [stdout] 236 |             .build(CacheManagerConfig {})
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^ help: a struct with a similar name exists: `CachingConfig`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0404]: expected trait, found struct `HttpProxy`
[INFO] [stdout]    --> src/main.rs:295:100
[INFO] [stdout]     |
[INFO] [stdout] 295 |     async fn upstream_peer<'a>(&'a self, session: &'a mut ServerSession, _ctx: <EnterpriseProxy as HttpProxy>::CTX) -> Result<Box<HttpPee...
[INFO] [stdout]     |                                                                                                    ^^^^^^^^^ not a trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0404]: expected trait, found struct `HttpProxy`
[INFO] [stdout]    --> src/main.rs:612:100
[INFO] [stdout]     |
[INFO] [stdout] 612 |     async fn upstream_peer<'a>(&'a self, session: &'a mut ServerSession, _ctx: <EnterpriseProxy as HttpProxy>::CTX) -> Result<Box<HttpPee...
[INFO] [stdout]     |                                                                                                    ^^^^^^^^^ not a trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/main.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HttpTask`
[INFO] [stdout]  --> src/main.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use pingora::protocols::http::{HttpTask, ServerSession};
[INFO] [stdout]   |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `counter`
[INFO] [stdout]  --> src/main.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use metrics::{counter, gauge, histogram};
[INFO] [stdout]   |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `metrics_exporter_prometheus::PrometheusBuilder`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use metrics_exporter_prometheus::PrometheusBuilder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]   --> src/main.rs:12:46
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{info, warn, error, instrument, Level};
[INFO] [stdout]    |                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> src/main.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::future::join_all`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use futures::future::join_all;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeaderValue`
[INFO] [stdout]   --> src/main.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 | use hyper::header::{HeaderValue, CONTENT_TYPE};
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::TryFuture`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use futures::TryFuture;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pingora::apps::http_app::HttpServer`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use pingora::apps::http_app::HttpServer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GetProxyDigest`
[INFO] [stdout]   --> src/main.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 | use pingora::protocols::{GetProxyDigest, TcpKeepalive};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pingora::upstreams::peer::Proxy`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use pingora::upstreams::peer::Proxy;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]    --> src/main.rs:224:26
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pool: deadpool::Pool<deadpool::managed::Object<CacheConnection>>,
[INFO] [stdout]     |                          ^^^^^^^^ use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `deadpool`, use `cargo add deadpool` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0195]: lifetime parameters or bounds on method `upstream_peer` do not match the trait declaration
[INFO] [stdout]    --> src/main.rs:295:27
[INFO] [stdout]     |
[INFO] [stdout] 295 |     async fn upstream_peer<'a>(&'a self, session: &'a mut ServerSession, _ctx: <EnterpriseProxy as HttpProxy>::CTX) -> Result<Box<HttpPee...
[INFO] [stdout]     |                           ^^^^ lifetimes do not match method in trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `CTX`, `new_ctx`
[INFO] [stdout]    --> src/main.rs:293:1
[INFO] [stdout]     |
[INFO] [stdout] 293 | impl ProxyHttp for EnterpriseProxy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `CTX`, `new_ctx` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `type CTX = /* Type */;`
[INFO] [stdout]     = help: implement the missing item: `fn new_ctx(&self) -> <Self as pingora::proxy::ProxyHttp>::CTX { todo!() }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `as_any`, `as_any_mut`
[INFO] [stdout]    --> src/main.rs:610:1
[INFO] [stdout]     |
[INFO] [stdout] 610 | impl HttpModule for EnterpriseProxy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `as_any`, `as_any_mut` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `fn as_any(&self) -> &(dyn std::any::Any + 'static) { todo!() }`
[INFO] [stdout]     = help: implement the missing item: `fn as_any_mut(&mut self) -> &mut (dyn std::any::Any + 'static) { todo!() }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Cache`
[INFO] [stdout]    --> src/main.rs:111:21
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let cache = Cache::builder()
[INFO] [stdout]     |                     ^^^^^ use of undeclared type `Cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Api`
[INFO] [stdout]    --> src/main.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let services: Api<Service> = Api::namespaced(
[INFO] [stdout]     |                                      ^^^ use of undeclared type `Api`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ListParams`
[INFO] [stdout]    --> src/main.rs:158:18
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let lp = ListParams::default()
[INFO] [stdout]     |                  ^^^^^^^^^^ use of undeclared type `ListParams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Cache`
[INFO] [stdout]    --> src/main.rs:229:21
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let cache = Cache::builder()
[INFO] [stdout]     |                     ^^^^^ use of undeclared type `Cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `CacheLayer` has no field named `pool`
[INFO] [stdout]    --> src/main.rs:239:23
[INFO] [stdout]     |
[INFO] [stdout] 239 |         Self { cache, pool }
[INFO] [stdout]     |                       ^^^^ `CacheLayer` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `pool` on type `&CacheLayer`
[INFO] [stdout]    --> src/main.rs:243:25
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let conn = self.pool.get().await.ok()?;
[INFO] [stdout]     |                         ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]    --> src/main.rs:234:20
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let pool = deadpool::Pool::builder()
[INFO] [stdout]     |                    ^^^^^^^^ use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `deadpool`, use `cargo add deadpool` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `pool` on type `&CacheLayer`
[INFO] [stdout]    --> src/main.rs:248:31
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let conn = match self.pool.get().await {
[INFO] [stdout]     |                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `cache_layer` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:335:33
[INFO] [stdout]     |
[INFO] [stdout] 335 |         let Some(cache) = &self.cache_layer else {
[INFO] [stdout]     |                                 ^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `load_balancer`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `upstream_peer` is not a member of trait `HttpModule`
[INFO] [stdout]    --> src/main.rs:611:5
[INFO] [stdout]     |
[INFO] [stdout] 611 |     #[instrument(skip(self, session))]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `HttpModule`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the attribute macro `instrument` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Cache` in this scope
[INFO] [stdout]    --> src/main.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 |     cache: Cache<String, Vec<u8>>,
[INFO] [stdout]     |            ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `EnhancedServiceDiscovery` in this scope
[INFO] [stdout]    --> src/main.rs:146:6
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl EnhancedServiceDiscovery {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^ help: a struct with a similar name exists: `ServiceDiscovery`
[INFO] [stdout] ...
[INFO] [stdout] 463 | struct ServiceDiscovery {
[INFO] [stdout]     | ----------------------- similarly named struct `ServiceDiscovery` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Api` in this scope
[INFO] [stdout]    --> src/main.rs:153:23
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let services: Api<Service> = Api::namespaced(
[INFO] [stdout]     |                       ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Service` in this scope
[INFO] [stdout]    --> src/main.rs:153:27
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let services: Api<Service> = Api::namespaced(
[INFO] [stdout]     |                           ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 1   + use hyper::service::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::listening::Service;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Service` in this scope
[INFO] [stdout]    --> src/main.rs:176:23
[INFO] [stdout]     |
[INFO] [stdout] 176 |         services: Vec<Service>
[INFO] [stdout]     |                       ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 1   + use hyper::service::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::listening::Service;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Service` in this scope
[INFO] [stdout]    --> src/main.rs:194:50
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn create_instance_from_service(&self, svc: &Service) -> ProxyResult<Instance> {
[INFO] [stdout]     |                                                  ^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 1   + use hyper::service::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::Service;
[INFO] [stdout]     |
[INFO] [stdout] 1   + use pingora::services::listening::Service;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Cache` in this scope
[INFO] [stdout]    --> src/main.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 223 |     cache: Cache<String, Arc<Vec<u8>>>,
[INFO] [stdout]     |            ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CacheConnection` in this scope
[INFO] [stdout]    --> src/main.rs:224:52
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pool: deadpool::Pool<deadpool::managed::Object<CacheConnection>>,
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 222 | struct CacheLayer<CacheConnection> {
[INFO] [stdout]     |                  +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `CacheManagerConfig` in this scope
[INFO] [stdout]    --> src/main.rs:236:20
[INFO] [stdout]     |
[INFO] [stdout] 78  | struct CachingConfig {
[INFO] [stdout]     | -------------------- similarly named struct `CachingConfig` defined here
[INFO] [stdout] ...
[INFO] [stdout] 236 |             .build(CacheManagerConfig {})
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^ help: a struct with a similar name exists: `CachingConfig`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0404]: expected trait, found struct `HttpProxy`
[INFO] [stdout]    --> src/main.rs:295:100
[INFO] [stdout]     |
[INFO] [stdout] 295 |     async fn upstream_peer<'a>(&'a self, session: &'a mut ServerSession, _ctx: <EnterpriseProxy as HttpProxy>::CTX) -> Result<Box<HttpPee...
[INFO] [stdout]     |                                                                                                    ^^^^^^^^^ not a trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0404]: expected trait, found struct `HttpProxy`
[INFO] [stdout]    --> src/main.rs:612:100
[INFO] [stdout]     |
[INFO] [stdout] 612 |     async fn upstream_peer<'a>(&'a self, session: &'a mut ServerSession, _ctx: <EnterpriseProxy as HttpProxy>::CTX) -> Result<Box<HttpPee...
[INFO] [stdout]     |                                                                                                    ^^^^^^^^^ not a trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/main.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HttpTask`
[INFO] [stdout]  --> src/main.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use pingora::protocols::http::{HttpTask, ServerSession};
[INFO] [stdout]   |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `counter`
[INFO] [stdout]  --> src/main.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use metrics::{counter, gauge, histogram};
[INFO] [stdout]   |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `metrics_exporter_prometheus::PrometheusBuilder`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use metrics_exporter_prometheus::PrometheusBuilder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]   --> src/main.rs:12:46
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{info, warn, error, instrument, Level};
[INFO] [stdout]    |                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> src/main.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::future::join_all`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use futures::future::join_all;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeaderValue`
[INFO] [stdout]   --> src/main.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 | use hyper::header::{HeaderValue, CONTENT_TYPE};
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::TryFuture`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use futures::TryFuture;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pingora::apps::http_app::HttpServer`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use pingora::apps::http_app::HttpServer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GetProxyDigest`
[INFO] [stdout]   --> src/main.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 | use pingora::protocols::{GetProxyDigest, TcpKeepalive};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pingora::upstreams::peer::Proxy`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use pingora::upstreams::peer::Proxy;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_response_body` found for mutable reference `&mut pingora::proxy::Session` in the current scope
[INFO] [stdout]    --> src/main.rs:342:21
[INFO] [stdout]     |
[INFO] [stdout] 342 |             session.set_response_body(cached_response.to_vec());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `write_response_body` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 378 | /     pub async fn write_response_body(
[INFO] [stdout] 379 | |         &mut self,
[INFO] [stdout] 380 | |         mut body: Option<Bytes>,
[INFO] [stdout] 381 | |         end_of_stream: bool,
[INFO] [stdout] 382 | |     ) -> Result<()> {
[INFO] [stdout]     | |___________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0195]: lifetime parameters or bounds on method `upstream_peer` do not match the trait declaration
[INFO] [stdout]    --> src/main.rs:295:27
[INFO] [stdout]     |
[INFO] [stdout] 295 |     async fn upstream_peer<'a>(&'a self, session: &'a mut ServerSession, _ctx: <EnterpriseProxy as HttpProxy>::CTX) -> Result<Box<HttpPee...
[INFO] [stdout]     |                           ^^^^ lifetimes do not match method in trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `CTX`, `new_ctx`
[INFO] [stdout]    --> src/main.rs:293:1
[INFO] [stdout]     |
[INFO] [stdout] 293 | impl ProxyHttp for EnterpriseProxy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `CTX`, `new_ctx` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `type CTX = /* Type */;`
[INFO] [stdout]     = help: implement the missing item: `fn new_ctx(&self) -> <Self as pingora::proxy::ProxyHttp>::CTX { todo!() }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `as_any`, `as_any_mut`
[INFO] [stdout]    --> src/main.rs:610:1
[INFO] [stdout]     |
[INFO] [stdout] 610 | impl HttpModule for EnterpriseProxy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `as_any`, `as_any_mut` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `fn as_any(&self) -> &(dyn std::any::Any + 'static) { todo!() }`
[INFO] [stdout]     = help: implement the missing item: `fn as_any_mut(&mut self) -> &mut (dyn std::any::Any + 'static) { todo!() }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/main.rs:343:37
[INFO] [stdout]     |
[INFO] [stdout] 343 |             return Ok(Some(Box::new(HttpPeer::new("cache".to_string(), 0))));
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^------------------------
[INFO] [stdout]     |                                                  |                     |
[INFO] [stdout]     |                                                  |                     expected `bool`, found integer
[INFO] [stdout]     |                                                  argument #3 of type `std::string::String` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/upstreams/peer.rs:452:12
[INFO] [stdout]     |
[INFO] [stdout] 452 |     pub fn new<A: ToInetSocketAddrs>(address: A, tls: bool, sni: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 343 -             return Ok(Some(Box::new(HttpPeer::new("cache".to_string(), 0))));
[INFO] [stdout] 343 +             return Ok(Some(Box::new(HttpPeer::new("cache".to_string(), /* bool */, /* std::string::String */))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Cache`
[INFO] [stdout]    --> src/main.rs:111:21
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let cache = Cache::builder()
[INFO] [stdout]     |                     ^^^^^ use of undeclared type `Cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Api`
[INFO] [stdout]    --> src/main.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let services: Api<Service> = Api::namespaced(
[INFO] [stdout]     |                                      ^^^ use of undeclared type `Api`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ListParams`
[INFO] [stdout]    --> src/main.rs:158:18
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let lp = ListParams::default()
[INFO] [stdout]     |                  ^^^^^^^^^^ use of undeclared type `ListParams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/main.rs:363:24
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut peer = HttpPeer::new(backend.clone(), 80);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^---------------------
[INFO] [stdout]     |                                     |                 |
[INFO] [stdout]     |                                     |                 expected `bool`, found integer
[INFO] [stdout]     |                                     argument #3 of type `std::string::String` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/upstreams/peer.rs:452:12
[INFO] [stdout]     |
[INFO] [stdout] 452 |     pub fn new<A: ToInetSocketAddrs>(address: A, tls: bool, sni: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 363 -         let mut peer = HttpPeer::new(backend.clone(), 80);
[INFO] [stdout] 363 +         let mut peer = HttpPeer::new(backend.clone(), /* bool */, /* std::string::String */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Cache`
[INFO] [stdout]    --> src/main.rs:229:21
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let cache = Cache::builder()
[INFO] [stdout]     |                     ^^^^^ use of undeclared type `Cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `CacheLayer` has no field named `pool`
[INFO] [stdout]    --> src/main.rs:239:23
[INFO] [stdout]     |
[INFO] [stdout] 239 |         Self { cache, pool }
[INFO] [stdout]     |                       ^^^^ `CacheLayer` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `pool` on type `&CacheLayer`
[INFO] [stdout]    --> src/main.rs:243:25
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let conn = self.pool.get().await.ok()?;
[INFO] [stdout]     |                         ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `pool` on type `&CacheLayer`
[INFO] [stdout]    --> src/main.rs:248:31
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let conn = match self.pool.get().await {
[INFO] [stdout]     |                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `metrics` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:379:32
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let mut metrics = self.metrics.write().await;
[INFO] [stdout]     |                                ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let mut metrics = self.load_balancer.metrics.write().await;
[INFO] [stdout]     |                                ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `cache_layer` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:335:33
[INFO] [stdout]     |
[INFO] [stdout] 335 |         let Some(cache) = &self.cache_layer else {
[INFO] [stdout]     |                                 ^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `load_balancer`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pingora::Error: From<StatusCode>` is not satisfied
[INFO] [stdout]    --> src/main.rs:504:34
[INFO] [stdout]     |
[INFO] [stdout] 504 |         Err(reqwest::Error::from(<StatusCode as TryInto<Error>>::Error::new(
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<StatusCode>` is not implemented for `pingora::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `StatusCode` to implement `Into<pingora::Error>`
[INFO] [stdout]     = note: required for `pingora::Error` to implement `TryFrom<StatusCode>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `new` found for enum `Infallible` in the current scope
[INFO] [stdout]    --> src/main.rs:504:73
[INFO] [stdout]     |
[INFO] [stdout] 504 |         Err(reqwest::Error::from(<StatusCode as TryInto<Error>>::Error::new(
[INFO] [stdout]     |                                                                         ^^^ variant or associated item not found in `Infallible`
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `ne` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/cmp.rs:265:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_response_body` found for mutable reference `&mut pingora::proxy::Session` in the current scope
[INFO] [stdout]    --> src/main.rs:342:21
[INFO] [stdout]     |
[INFO] [stdout] 342 |             session.set_response_body(cached_response.to_vec());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `write_response_body` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 378 | /     pub async fn write_response_body(
[INFO] [stdout] 379 | |         &mut self,
[INFO] [stdout] 380 | |         mut body: Option<Bytes>,
[INFO] [stdout] 381 | |         end_of_stream: bool,
[INFO] [stdout] 382 | |     ) -> Result<()> {
[INFO] [stdout]     | |___________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0592]: duplicate definitions with name `new`
[INFO] [stdout]    --> src/main.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     async fn new(config: &CachingConfig) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `new`
[INFO] [stdout] ...
[INFO] [stdout] 228 |     async fn new(config: &CachingConfig) -> Self {
[INFO] [stdout]     |     -------------------------------------------- other definition for `new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0592]: duplicate definitions with name `get`
[INFO] [stdout]    --> src/main.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     async fn get(&self, key: &str) -> Option<Vec<u8>> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `get`
[INFO] [stdout] ...
[INFO] [stdout] 242 |     async fn get(&self, key: &str) -> Option<Arc<Vec<u8>>> {
[INFO] [stdout]     |     ------------------------------------------------------ other definition for `get`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/main.rs:343:37
[INFO] [stdout]     |
[INFO] [stdout] 343 |             return Ok(Some(Box::new(HttpPeer::new("cache".to_string(), 0))));
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^------------------------
[INFO] [stdout]     |                                                  |                     |
[INFO] [stdout]     |                                                  |                     expected `bool`, found integer
[INFO] [stdout]     |                                                  argument #3 of type `std::string::String` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/upstreams/peer.rs:452:12
[INFO] [stdout]     |
[INFO] [stdout] 452 |     pub fn new<A: ToInetSocketAddrs>(address: A, tls: bool, sni: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 343 -             return Ok(Some(Box::new(HttpPeer::new("cache".to_string(), 0))));
[INFO] [stdout] 343 +             return Ok(Some(Box::new(HttpPeer::new("cache".to_string(), /* bool */, /* std::string::String */))));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0592]: duplicate definitions with name `set`
[INFO] [stdout]    --> src/main.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |     async fn set(&self, key: String, value: Vec<u8>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set`
[INFO] [stdout] ...
[INFO] [stdout] 247 |     async fn set(&self, key: String, value: Vec<u8>) {
[INFO] [stdout]     |     ------------------------------------------------ other definition for `set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/main.rs:363:24
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut peer = HttpPeer::new(backend.clone(), 80);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^---------------------
[INFO] [stdout]     |                                     |                 |
[INFO] [stdout]     |                                     |                 expected `bool`, found integer
[INFO] [stdout]     |                                     argument #3 of type `std::string::String` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/upstreams/peer.rs:452:12
[INFO] [stdout]     |
[INFO] [stdout] 452 |     pub fn new<A: ToInetSocketAddrs>(address: A, tls: bool, sni: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 363 -         let mut peer = HttpPeer::new(backend.clone(), 80);
[INFO] [stdout] 363 +         let mut peer = HttpPeer::new(backend.clone(), /* bool */, /* std::string::String */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `metrics` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:379:32
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let mut metrics = self.metrics.write().await;
[INFO] [stdout]     |                                ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 379 |         let mut metrics = self.load_balancer.metrics.write().await;
[INFO] [stdout]     |                                ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `ab_testing_config` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:263:18
[INFO] [stdout]     |
[INFO] [stdout] 263 |         if !self.ab_testing_config.enabled {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `load_balancer`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `ab_testing_config` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:267:31
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let experiment = self.ab_testing_config.experiments.get(service_name)?;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `load_balancer`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pingora::Error: From<StatusCode>` is not satisfied
[INFO] [stdout]    --> src/main.rs:504:34
[INFO] [stdout]     |
[INFO] [stdout] 504 |         Err(reqwest::Error::from(<StatusCode as TryInto<Error>>::Error::new(
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<StatusCode>` is not implemented for `pingora::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `StatusCode` to implement `Into<pingora::Error>`
[INFO] [stdout]     = note: required for `pingora::Error` to implement `TryFrom<StatusCode>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `gen_range` found for struct `ThreadRng` in the current scope
[INFO] [stdout]    --> src/main.rs:277:50
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let selected_weight = rand::thread_rng().gen_range(0..total_weight);
[INFO] [stdout]     |                                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn gen_range<T, R>(&mut self, range: R) -> T
[INFO] [stdout]     |        --------- the method is available for `ThreadRng` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `gen_ratio` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs:299:5
[INFO] [stdout]     |
[INFO] [stdout] 299 |     fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `Rng` which provides `gen_range` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use rand::Rng;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `new` found for enum `Infallible` in the current scope
[INFO] [stdout]    --> src/main.rs:504:73
[INFO] [stdout]     |
[INFO] [stdout] 504 |         Err(reqwest::Error::from(<StatusCode as TryInto<Error>>::Error::new(
[INFO] [stdout]     |                                                                         ^^^ variant or associated item not found in `Infallible`
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `ne` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/cmp.rs:265:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `tracer` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:299:26
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let _span = self.tracer.as_ref().map(|tracer| tracer.start("proxy_request"));
[INFO] [stdout]     |                          ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `load_balancer`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:302:54
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let service_name = self.extract_service_name(session)?;
[INFO] [stdout]     |                                 -------------------- ^^^^^^^ expected `&Session`, found `&mut ServerSession`
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ServerSession` and `pingora::proxy::Session` have similar names, but are actually distinct types
[INFO] [stdout] note: `ServerSession` is defined in crate `pingora_core`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/protocols/http/server.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout] 31  | pub enum Session {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pingora::proxy::Session` is defined in crate `pingora_proxy`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:293:1
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub struct Session {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/main.rs:324:8
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn extract_service_name(&self, session: &Session) -> ProxyResult<&str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^        -----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:302:62
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let service_name = self.extract_service_name(session)?;
[INFO] [stdout]     |                                 -----------------------------^ the trait `From<ProxyError>` is not implemented for `pingora::Error`
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this can't be annotated with `?` because it has type `Result<_, ProxyError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `ProxyError` needs to implement `Into<pingora::Error>`
[INFO] [stdout]    --> src/main.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum ProxyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0592]: duplicate definitions with name `new`
[INFO] [stdout]    --> src/main.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     async fn new(config: &CachingConfig) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `new`
[INFO] [stdout] ...
[INFO] [stdout] 228 |     async fn new(config: &CachingConfig) -> Self {
[INFO] [stdout]     |     -------------------------------------------- other definition for `new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0592]: duplicate definitions with name `get`
[INFO] [stdout]    --> src/main.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     async fn get(&self, key: &str) -> Option<Vec<u8>> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `get`
[INFO] [stdout] ...
[INFO] [stdout] 242 |     async fn get(&self, key: &str) -> Option<Arc<Vec<u8>>> {
[INFO] [stdout]     |     ------------------------------------------------------ other definition for `get`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0592]: duplicate definitions with name `set`
[INFO] [stdout]    --> src/main.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |     async fn set(&self, key: String, value: Vec<u8>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `set`
[INFO] [stdout] ...
[INFO] [stdout] 247 |     async fn set(&self, key: String, value: Vec<u8>) {
[INFO] [stdout]     |     ------------------------------------------------ other definition for `set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:305:69
[INFO] [stdout]     |
[INFO] [stdout] 305 |         if let Some(cached_response) = self.try_cache(service_name, session).await? {
[INFO] [stdout]     |                                             ---------               ^^^^^^^ expected `&mut Session`, found `&mut ServerSession`
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ServerSession` and `pingora::proxy::Session` have similar names, but are actually distinct types
[INFO] [stdout] note: `ServerSession` is defined in crate `pingora_core`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/protocols/http/server.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout] 31  | pub enum Session {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pingora::proxy::Session` is defined in crate `pingora_proxy`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:293:1
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub struct Session {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/main.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 |     async fn try_cache(&self, service_name: &str, session: &mut Session)
[INFO] [stdout]     |              ^^^^^^^^^                            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `ab_testing_config` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:263:18
[INFO] [stdout]     |
[INFO] [stdout] 263 |         if !self.ab_testing_config.enabled {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `load_balancer`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `ab_testing_config` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:267:31
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let experiment = self.ab_testing_config.experiments.get(service_name)?;
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `load_balancer`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:305:83
[INFO] [stdout]     |
[INFO] [stdout] 305 |         if let Some(cached_response) = self.try_cache(service_name, session).await? {
[INFO] [stdout]     |                                        -------------------------------------------^ the trait `From<ProxyError>` is not implemented for `pingora::Error`
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        this can't be annotated with `?` because it has type `Result<_, ProxyError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `ProxyError` needs to implement `Into<pingora::Error>`
[INFO] [stdout]    --> src/main.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum ProxyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:310:75
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let backend = self.get_backend_with_ab_testing(service_name).await?;
[INFO] [stdout]     |                       ----------------------------------------------------^ the trait `From<ProxyError>` is not implemented for `pingora::Error`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this can't be annotated with `?` because it has type `Result<_, ProxyError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `ProxyError` needs to implement `Into<pingora::Error>`
[INFO] [stdout]    --> src/main.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum ProxyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:313:62
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let peer = self.create_configured_peer(backend).await?;
[INFO] [stdout]     |                    ------------------------------------------^ the trait `From<ProxyError>` is not implemented for `pingora::Error`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this can't be annotated with `?` because it has type `Result<_, ProxyError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `ProxyError` needs to implement `Into<pingora::Error>`
[INFO] [stdout]    --> src/main.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum ProxyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `gen_range` found for struct `ThreadRng` in the current scope
[INFO] [stdout]    --> src/main.rs:277:50
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let selected_weight = rand::thread_rng().gen_range(0..total_weight);
[INFO] [stdout]     |                                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn gen_range<T, R>(&mut self, range: R) -> T
[INFO] [stdout]     |        --------- the method is available for `ThreadRng` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `gen_ratio` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/rng.rs:299:5
[INFO] [stdout]     |
[INFO] [stdout] 299 |     fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `Rng` which provides `gen_range` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use rand::Rng;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `tracer` on type `&EnterpriseProxy`
[INFO] [stdout]    --> src/main.rs:299:26
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let _span = self.tracer.as_ref().map(|tracer| tracer.start("proxy_request"));
[INFO] [stdout]     |                          ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `load_balancer`, `timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:618:84
[INFO] [stdout]     |
[INFO] [stdout] 618 |             .ok_or_else(|| Error::err(ErrorType::new("InvalidServicePath".into())))?;
[INFO] [stdout]     |              ----------------------------------------------------------------------^ the trait `From<std::result::Result<_, Box<pingora::Error>>>` is not implemented for `pingora::Error`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this can't be annotated with `?` because it has type `Result<_, std::result::Result<_, Box<pingora::Error>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:621:87
[INFO] [stdout]     |
[INFO] [stdout] 621 |             .ok_or_else(|| Error::err(ErrorType::new("NoHealthyServiceFound".into())))?;
[INFO] [stdout]     |              -------------------------------------------------------------------------^ the trait `From<std::result::Result<_, Box<pingora::Error>>>` is not implemented for `pingora::Error`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this can't be annotated with `?` because it has type `Result<_, std::result::Result<_, Box<pingora::Error>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pingora::ErrorType: From<&str>` is not satisfied
[INFO] [stdout]    --> src/main.rs:628:62
[INFO] [stdout]     |
[INFO] [stdout] 628 |                 return Err(*Error::err("Rate limit exceeded".into()));
[INFO] [stdout]     |                                                              ^^^^ the trait `From<&str>` is not implemented for `pingora::ErrorType`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&str` to implement `Into<pingora::ErrorType>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `std::result::Result<_, Box<pingora::Error>>` cannot be dereferenced
[INFO] [stdout]    --> src/main.rs:628:28
[INFO] [stdout]     |
[INFO] [stdout] 628 |                 return Err(*Error::err("Rate limit exceeded".into()));
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `[(&str, std::string::String); 2]: IntoLabels` is not satisfied
[INFO] [stdout]    --> src/main.rs:651:13
[INFO] [stdout]     |
[INFO] [stdout] 650 | /          histogram!("backend_selection_time_ms",
[INFO] [stdout] 651 | |/             [("backend", backend),
[INFO] [stdout] 652 | ||                 ("elapsed_time_ms", format!("{}!", start_time.elapsed().as_secs_f64() * 1000.00))],
[INFO] [stdout]     | ||__________________________________________________________________________________________________^ the trait `IntoLabels` is not implemented for `[(&str, std::string::String); 2]`
[INFO] [stdout] 653 | |          );
[INFO] [stdout]     | |__________- required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `Key::from_parts`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/metrics-0.24.1/src/key.rs:83:12
[INFO] [stdout]     |
[INFO] [stdout] 80  |     pub fn from_parts<N, L>(name: N, labels: L) -> Self
[INFO] [stdout]     |            ---------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 83  |         L: IntoLabels,
[INFO] [stdout]     |            ^^^^^^^^^^ required by this bound in `Key::from_parts`
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 651 |             &[("backend", backend),
[INFO] [stdout]     |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:302:54
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let service_name = self.extract_service_name(session)?;
[INFO] [stdout]     |                                 -------------------- ^^^^^^^ expected `&Session`, found `&mut ServerSession`
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ServerSession` and `pingora::proxy::Session` have similar names, but are actually distinct types
[INFO] [stdout] note: `ServerSession` is defined in crate `pingora_core`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/protocols/http/server.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout] 31  | pub enum Session {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pingora::proxy::Session` is defined in crate `pingora_proxy`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:293:1
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub struct Session {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/main.rs:324:8
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn extract_service_name(&self, session: &Session) -> ProxyResult<&str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^        -----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:302:62
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let service_name = self.extract_service_name(session)?;
[INFO] [stdout]     |                                 -----------------------------^ the trait `From<ProxyError>` is not implemented for `pingora::Error`
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this can't be annotated with `?` because it has type `Result<_, ProxyError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `ProxyError` needs to implement `Into<pingora::Error>`
[INFO] [stdout]    --> src/main.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum ProxyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_num_workers` found for struct `pingora::prelude::Server` in the current scope
[INFO] [stdout]    --> src/main.rs:679:12
[INFO] [stdout]     |
[INFO] [stdout] 679 |     server.set_num_workers(num_cpus::get() * 2);  // 2 workers per CPU core
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ method not found in `pingora::prelude::Server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_tcp_nodelay` found for struct `pingora::prelude::Server` in the current scope
[INFO] [stdout]    --> src/main.rs:680:12
[INFO] [stdout]     |
[INFO] [stdout] 680 |     server.set_tcp_nodelay(true);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ method not found in `pingora::prelude::Server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_tcp_keepalive` found for struct `pingora::prelude::Server` in the current scope
[INFO] [stdout]    --> src/main.rs:681:12
[INFO] [stdout]     |
[INFO] [stdout] 681 |     server.set_tcp_keepalive(Some(Duration::from_secs(60)));
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^ method not found in `pingora::prelude::Server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:305:69
[INFO] [stdout]     |
[INFO] [stdout] 305 |         if let Some(cached_response) = self.try_cache(service_name, session).await? {
[INFO] [stdout]     |                                             ---------               ^^^^^^^ expected `&mut Session`, found `&mut ServerSession`
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ServerSession` and `pingora::proxy::Session` have similar names, but are actually distinct types
[INFO] [stdout] note: `ServerSession` is defined in crate `pingora_core`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/protocols/http/server.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout] 31  | pub enum Session {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `pingora::proxy::Session` is defined in crate `pingora_proxy`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:293:1
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub struct Session {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/main.rs:333:14
[INFO] [stdout]     |
[INFO] [stdout] 333 |     async fn try_cache(&self, service_name: &str, session: &mut Session)
[INFO] [stdout]     |              ^^^^^^^^^                            ---------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:305:83
[INFO] [stdout]     |
[INFO] [stdout] 305 |         if let Some(cached_response) = self.try_cache(service_name, session).await? {
[INFO] [stdout]     |                                        -------------------------------------------^ the trait `From<ProxyError>` is not implemented for `pingora::Error`
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        this can't be annotated with `?` because it has type `Result<_, ProxyError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `ProxyError` needs to implement `Into<pingora::Error>`
[INFO] [stdout]    --> src/main.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum ProxyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `Acceptor` in the current scope
[INFO] [stdout]    --> src/main.rs:687:25
[INFO] [stdout]     |
[INFO] [stdout] 687 |     let tls = Acceptor::new(tls_acceptor.build());
[INFO] [stdout]     |                         ^^^ function or associated item not found in `Acceptor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:310:75
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let backend = self.get_backend_with_ab_testing(service_name).await?;
[INFO] [stdout]     |                       ----------------------------------------------------^ the trait `From<ProxyError>` is not implemented for `pingora::Error`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this can't be annotated with `?` because it has type `Result<_, ProxyError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `ProxyError` needs to implement `Into<pingora::Error>`
[INFO] [stdout]    --> src/main.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum ProxyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0624]: associated function `new` is private
[INFO] [stdout]    --> src/main.rs:713:37
[INFO] [stdout]     |
[INFO] [stdout] 713 |     let mut http_proxy = HttpProxy::new(proxy_arc.clone());
[INFO] [stdout]     |                                     ^^^ private associated function
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn new(inner: SV, conf: Arc<ServerConf>) -> Self {
[INFO] [stdout]     |     ------------------------------------------------ private associated function defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/main.rs:713:26
[INFO] [stdout]     |
[INFO] [stdout] 713 |     let mut http_proxy = HttpProxy::new(proxy_arc.clone());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^------------------- argument #2 of type `Arc<ServerConf>` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn new(inner: SV, conf: Arc<ServerConf>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 713 |     let mut http_proxy = HttpProxy::new(proxy_arc.clone(), /* Arc<ServerConf> */);
[INFO] [stdout]     |                                                          +++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:313:62
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let peer = self.create_configured_peer(backend).await?;
[INFO] [stdout]     |                    ------------------------------------------^ the trait `From<ProxyError>` is not implemented for `pingora::Error`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this can't be annotated with `?` because it has type `Result<_, ProxyError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `ProxyError` needs to implement `Into<pingora::Error>`
[INFO] [stdout]    --> src/main.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum ProxyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_listen` found for struct `HttpProxy` in the current scope
[INFO] [stdout]    --> src/main.rs:714:16
[INFO] [stdout]     |
[INFO] [stdout] 714 |     http_proxy.set_listen("0.0.0.0:8080".parse()?);
[INFO] [stdout]     |                ^^^^^^^^^^ method not found in `HttpProxy<Arc<EnterpriseProxy>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:618:84
[INFO] [stdout]     |
[INFO] [stdout] 618 |             .ok_or_else(|| Error::err(ErrorType::new("InvalidServicePath".into())))?;
[INFO] [stdout]     |              ----------------------------------------------------------------------^ the trait `From<std::result::Result<_, Box<pingora::Error>>>` is not implemented for `pingora::Error`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this can't be annotated with `?` because it has type `Result<_, std::result::Result<_, Box<pingora::Error>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `pingora::Error`
[INFO] [stdout]    --> src/main.rs:621:87
[INFO] [stdout]     |
[INFO] [stdout] 621 |             .ok_or_else(|| Error::err(ErrorType::new("NoHealthyServiceFound".into())))?;
[INFO] [stdout]     |              -------------------------------------------------------------------------^ the trait `From<std::result::Result<_, Box<pingora::Error>>>` is not implemented for `pingora::Error`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this can't be annotated with `?` because it has type `Result<_, std::result::Result<_, Box<pingora::Error>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `HttpProxy<Arc<EnterpriseProxy>>: pingora::services::Service` is not satisfied
[INFO] [stdout]    --> src/main.rs:715:24
[INFO] [stdout]     |
[INFO] [stdout] 715 |     server.add_service(http_proxy);
[INFO] [stdout]     |            ----------- ^^^^^^^^^^ the trait `pingora::services::Service` is not implemented for `HttpProxy<Arc<EnterpriseProxy>>`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `pingora::services::Service`:
[INFO] [stdout]               GenBackgroundService<A>
[INFO] [stdout]               pingora::services::listening::Service<A>
[INFO] [stdout] note: required by a bound in `pingora::prelude::Server::add_service`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/server/mod.rs:266:49
[INFO] [stdout]     |
[INFO] [stdout] 266 |     pub fn add_service(&mut self, service: impl Service + 'static) {
[INFO] [stdout]     |                                                 ^^^^^^^ required by this bound in `Server::add_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0624]: associated function `new` is private
[INFO] [stdout]    --> src/main.rs:718:38
[INFO] [stdout]     |
[INFO] [stdout] 718 |     let mut https_proxy = HttpProxy::new(proxy_arc, Arc::new(ServerConf::new()));
[INFO] [stdout]     |                                      ^^^ private associated function
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn new(inner: SV, conf: Arc<ServerConf>) -> Self {
[INFO] [stdout]     |     ------------------------------------------------ private associated function defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:718:62
[INFO] [stdout]     |
[INFO] [stdout] 718 |     let mut https_proxy = HttpProxy::new(proxy_arc, Arc::new(ServerConf::new()));
[INFO] [stdout]     |                                                     -------- ^^^^^^^^^^^^^^^^^ expected `ServerConf`, found `Option<ServerConf>`
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `ServerConf`
[INFO] [stdout]                  found enum `std::option::Option<ServerConf>`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/alloc/src/sync.rs:406:12
[INFO] [stdout] help: consider using `Option::expect` to unwrap the `std::option::Option<ServerConf>` value, panicking if the value is an `Option::None`
[INFO] [stdout]     |
[INFO] [stdout] 718 |     let mut https_proxy = HttpProxy::new(proxy_arc, Arc::new(ServerConf::new().expect("REASON")));
[INFO] [stdout]     |                                                                               +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pingora::ErrorType: From<&str>` is not satisfied
[INFO] [stdout]    --> src/main.rs:628:62
[INFO] [stdout]     |
[INFO] [stdout] 628 |                 return Err(*Error::err("Rate limit exceeded".into()));
[INFO] [stdout]     |                                                              ^^^^ the trait `From<&str>` is not implemented for `pingora::ErrorType`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&str` to implement `Into<pingora::ErrorType>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `std::result::Result<_, Box<pingora::Error>>` cannot be dereferenced
[INFO] [stdout]    --> src/main.rs:628:28
[INFO] [stdout]     |
[INFO] [stdout] 628 |                 return Err(*Error::err("Rate limit exceeded".into()));
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `[(&str, std::string::String); 2]: IntoLabels` is not satisfied
[INFO] [stdout]    --> src/main.rs:651:13
[INFO] [stdout]     |
[INFO] [stdout] 650 | /          histogram!("backend_selection_time_ms",
[INFO] [stdout] 651 | |/             [("backend", backend),
[INFO] [stdout] 652 | ||                 ("elapsed_time_ms", format!("{}!", start_time.elapsed().as_secs_f64() * 1000.00))],
[INFO] [stdout]     | ||__________________________________________________________________________________________________^ the trait `IntoLabels` is not implemented for `[(&str, std::string::String); 2]`
[INFO] [stdout] 653 | |          );
[INFO] [stdout]     | |__________- required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `Key::from_parts`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/metrics-0.24.1/src/key.rs:83:12
[INFO] [stdout]     |
[INFO] [stdout] 80  |     pub fn from_parts<N, L>(name: N, labels: L) -> Self
[INFO] [stdout]     |            ---------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 83  |         L: IntoLabels,
[INFO] [stdout]     |            ^^^^^^^^^^ required by this bound in `Key::from_parts`
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 651 |             &[("backend", backend),
[INFO] [stdout]     |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_listen` found for struct `HttpProxy` in the current scope
[INFO] [stdout]    --> src/main.rs:719:17
[INFO] [stdout]     |
[INFO] [stdout] 719 |     https_proxy.set_listen("0.0.0.0:8443".parse()?);
[INFO] [stdout]     |                 ^^^^^^^^^^ method not found in `HttpProxy<Arc<EnterpriseProxy>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `HttpProxy<Arc<EnterpriseProxy>>: pingora::services::Service` is not satisfied
[INFO] [stdout]    --> src/main.rs:720:24
[INFO] [stdout]     |
[INFO] [stdout] 720 |     server.add_service(https_proxy);
[INFO] [stdout]     |            ----------- ^^^^^^^^^^^ the trait `pingora::services::Service` is not implemented for `HttpProxy<Arc<EnterpriseProxy>>`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `pingora::services::Service`:
[INFO] [stdout]               GenBackgroundService<A>
[INFO] [stdout]               pingora::services::listening::Service<A>
[INFO] [stdout] note: required by a bound in `pingora::prelude::Server::add_service`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/server/mod.rs:266:49
[INFO] [stdout]     |
[INFO] [stdout] 266 |     pub fn add_service(&mut self, service: impl Service + 'static) {
[INFO] [stdout]     |                                                 ^^^^^^^ required by this bound in `Server::add_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]    --> src/main.rs:723:5
[INFO] [stdout]     |
[INFO] [stdout] 723 |     server.run_forever()?;
[INFO] [stdout]     |     --------------------^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     unreachable call
[INFO] [stdout]     |     any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_num_workers` found for struct `pingora::prelude::Server` in the current scope
[INFO] [stdout]    --> src/main.rs:679:12
[INFO] [stdout]     |
[INFO] [stdout] 679 |     server.set_num_workers(num_cpus::get() * 2);  // 2 workers per CPU core
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ method not found in `pingora::prelude::Server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/main.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 281 |       fn find_variant(&self, experiment: &AbExperiment, selected_weight: u32) -> Option<&AbVariant> {
[INFO] [stdout]     |                       -                  - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       let's call the lifetime of this reference `'2`
[INFO] [stdout] ...
[INFO] [stdout] 284 | /         experiment.variants.iter()
[INFO] [stdout] 285 | |             .find(|variant| {
[INFO] [stdout] 286 | |                 cumulative_weight += variant.weight;
[INFO] [stdout] 287 | |                 selected_weight < cumulative_weight
[INFO] [stdout] 288 | |             })
[INFO] [stdout]     | |______________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
[INFO] [stdout]     |
[INFO] [stdout] help: consider introducing a named lifetime parameter and update trait if needed
[INFO] [stdout]     |
[INFO] [stdout] 281 |     fn find_variant<'a>(&self, experiment: &'a AbExperiment, selected_weight: u32) -> Option<&'a AbVariant> {
[INFO] [stdout]     |                    ++++                     ++                                                ++
[INFO] [stdout] help: consider adding 'move' keyword before the nested closure
[INFO] [stdout]     |
[INFO] [stdout] 285 |             .find(move |variant| {
[INFO] [stdout]     |                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/main.rs:325:9
[INFO] [stdout]     |
[INFO] [stdout] 324 |       fn extract_service_name(&self, session: &Session) -> ProxyResult<&str> {
[INFO] [stdout]     |                               -               - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               let's call the lifetime of this reference `'2`
[INFO] [stdout] 325 | /         session.req_header()
[INFO] [stdout] 326 | |             .uri
[INFO] [stdout] 327 | |             .path()
[INFO] [stdout] 328 | |             .split('/')
[INFO] [stdout] 329 | |             .nth(1)
[INFO] [stdout] 330 | |             .ok_or(ProxyError::InvalidServicePath)
[INFO] [stdout]     | |__________________________________________________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
[INFO] [stdout]     |
[INFO] [stdout] help: consider introducing a named lifetime parameter and update trait if needed
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn extract_service_name<'a>(&self, session: &'a Session) -> ProxyResult<&'a str> {
[INFO] [stdout]     |                            ++++                  ++                          ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_tcp_nodelay` found for struct `pingora::prelude::Server` in the current scope
[INFO] [stdout]    --> src/main.rs:680:12
[INFO] [stdout]     |
[INFO] [stdout] 680 |     server.set_tcp_nodelay(true);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ method not found in `pingora::prelude::Server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]    --> src/main.rs:224:11
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pool: deadpool::Pool<deadpool::managed::Object<CacheConnection>>,
[INFO] [stdout]     |           ^^^^^^^^ use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `deadpool`, use `cargo add deadpool` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0061, E0195, E0277, E0308, E0404, E0407, E0412, E0422...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_tcp_keepalive` found for struct `pingora::prelude::Server` in the current scope
[INFO] [stdout]    --> src/main.rs:681:12
[INFO] [stdout]     |
[INFO] [stdout] 681 |     server.set_tcp_keepalive(Some(Duration::from_secs(60)));
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^ method not found in `pingora::prelude::Server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `proxy-server` (bin "proxy-server") due to 65 previous errors; 13 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `Acceptor` in the current scope
[INFO] [stdout]    --> src/main.rs:687:25
[INFO] [stdout]     |
[INFO] [stdout] 687 |     let tls = Acceptor::new(tls_acceptor.build());
[INFO] [stdout]     |                         ^^^ function or associated item not found in `Acceptor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0624]: associated function `new` is private
[INFO] [stdout]    --> src/main.rs:713:37
[INFO] [stdout]     |
[INFO] [stdout] 713 |     let mut http_proxy = HttpProxy::new(proxy_arc.clone());
[INFO] [stdout]     |                                     ^^^ private associated function
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn new(inner: SV, conf: Arc<ServerConf>) -> Self {
[INFO] [stdout]     |     ------------------------------------------------ private associated function defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/main.rs:713:26
[INFO] [stdout]     |
[INFO] [stdout] 713 |     let mut http_proxy = HttpProxy::new(proxy_arc.clone());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^------------------- argument #2 of type `Arc<ServerConf>` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn new(inner: SV, conf: Arc<ServerConf>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 713 |     let mut http_proxy = HttpProxy::new(proxy_arc.clone(), /* Arc<ServerConf> */);
[INFO] [stdout]     |                                                          +++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_listen` found for struct `HttpProxy` in the current scope
[INFO] [stdout]    --> src/main.rs:714:16
[INFO] [stdout]     |
[INFO] [stdout] 714 |     http_proxy.set_listen("0.0.0.0:8080".parse()?);
[INFO] [stdout]     |                ^^^^^^^^^^ method not found in `HttpProxy<Arc<EnterpriseProxy>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `HttpProxy<Arc<EnterpriseProxy>>: pingora::services::Service` is not satisfied
[INFO] [stdout]    --> src/main.rs:715:24
[INFO] [stdout]     |
[INFO] [stdout] 715 |     server.add_service(http_proxy);
[INFO] [stdout]     |            ----------- ^^^^^^^^^^ the trait `pingora::services::Service` is not implemented for `HttpProxy<Arc<EnterpriseProxy>>`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `pingora::services::Service`:
[INFO] [stdout]               GenBackgroundService<A>
[INFO] [stdout]               pingora::services::listening::Service<A>
[INFO] [stdout] note: required by a bound in `pingora::prelude::Server::add_service`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/server/mod.rs:266:49
[INFO] [stdout]     |
[INFO] [stdout] 266 |     pub fn add_service(&mut self, service: impl Service + 'static) {
[INFO] [stdout]     |                                                 ^^^^^^^ required by this bound in `Server::add_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0624]: associated function `new` is private
[INFO] [stdout]    --> src/main.rs:718:38
[INFO] [stdout]     |
[INFO] [stdout] 718 |     let mut https_proxy = HttpProxy::new(proxy_arc, Arc::new(ServerConf::new()));
[INFO] [stdout]     |                                      ^^^ private associated function
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-proxy-0.4.0/src/lib.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn new(inner: SV, conf: Arc<ServerConf>) -> Self {
[INFO] [stdout]     |     ------------------------------------------------ private associated function defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:718:62
[INFO] [stdout]     |
[INFO] [stdout] 718 |     let mut https_proxy = HttpProxy::new(proxy_arc, Arc::new(ServerConf::new()));
[INFO] [stdout]     |                                                     -------- ^^^^^^^^^^^^^^^^^ expected `ServerConf`, found `Option<ServerConf>`
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `ServerConf`
[INFO] [stdout]                  found enum `std::option::Option<ServerConf>`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/alloc/src/sync.rs:406:12
[INFO] [stdout] help: consider using `Option::expect` to unwrap the `std::option::Option<ServerConf>` value, panicking if the value is an `Option::None`
[INFO] [stdout]     |
[INFO] [stdout] 718 |     let mut https_proxy = HttpProxy::new(proxy_arc, Arc::new(ServerConf::new().expect("REASON")));
[INFO] [stdout]     |                                                                               +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set_listen` found for struct `HttpProxy` in the current scope
[INFO] [stdout]    --> src/main.rs:719:17
[INFO] [stdout]     |
[INFO] [stdout] 719 |     https_proxy.set_listen("0.0.0.0:8443".parse()?);
[INFO] [stdout]     |                 ^^^^^^^^^^ method not found in `HttpProxy<Arc<EnterpriseProxy>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `HttpProxy<Arc<EnterpriseProxy>>: pingora::services::Service` is not satisfied
[INFO] [stdout]    --> src/main.rs:720:24
[INFO] [stdout]     |
[INFO] [stdout] 720 |     server.add_service(https_proxy);
[INFO] [stdout]     |            ----------- ^^^^^^^^^^^ the trait `pingora::services::Service` is not implemented for `HttpProxy<Arc<EnterpriseProxy>>`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `pingora::services::Service`:
[INFO] [stdout]               GenBackgroundService<A>
[INFO] [stdout]               pingora::services::listening::Service<A>
[INFO] [stdout] note: required by a bound in `pingora::prelude::Server::add_service`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pingora-core-0.4.0/src/server/mod.rs:266:49
[INFO] [stdout]     |
[INFO] [stdout] 266 |     pub fn add_service(&mut self, service: impl Service + 'static) {
[INFO] [stdout]     |                                                 ^^^^^^^ required by this bound in `Server::add_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]    --> src/main.rs:723:5
[INFO] [stdout]     |
[INFO] [stdout] 723 |     server.run_forever()?;
[INFO] [stdout]     |     --------------------^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     unreachable call
[INFO] [stdout]     |     any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/main.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 281 |       fn find_variant(&self, experiment: &AbExperiment, selected_weight: u32) -> Option<&AbVariant> {
[INFO] [stdout]     |                       -                  - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       let's call the lifetime of this reference `'2`
[INFO] [stdout] ...
[INFO] [stdout] 284 | /         experiment.variants.iter()
[INFO] [stdout] 285 | |             .find(|variant| {
[INFO] [stdout] 286 | |                 cumulative_weight += variant.weight;
[INFO] [stdout] 287 | |                 selected_weight < cumulative_weight
[INFO] [stdout] 288 | |             })
[INFO] [stdout]     | |______________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
[INFO] [stdout]     |
[INFO] [stdout] help: consider introducing a named lifetime parameter and update trait if needed
[INFO] [stdout]     |
[INFO] [stdout] 281 |     fn find_variant<'a>(&self, experiment: &'a AbExperiment, selected_weight: u32) -> Option<&'a AbVariant> {
[INFO] [stdout]     |                    ++++                     ++                                                ++
[INFO] [stdout] help: consider adding 'move' keyword before the nested closure
[INFO] [stdout]     |
[INFO] [stdout] 285 |             .find(move |variant| {
[INFO] [stdout]     |                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/main.rs:325:9
[INFO] [stdout]     |
[INFO] [stdout] 324 |       fn extract_service_name(&self, session: &Session) -> ProxyResult<&str> {
[INFO] [stdout]     |                               -               - let's call the lifetime of this reference `'1`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               let's call the lifetime of this reference `'2`
[INFO] [stdout] 325 | /         session.req_header()
[INFO] [stdout] 326 | |             .uri
[INFO] [stdout] 327 | |             .path()
[INFO] [stdout] 328 | |             .split('/')
[INFO] [stdout] 329 | |             .nth(1)
[INFO] [stdout] 330 | |             .ok_or(ProxyError::InvalidServicePath)
[INFO] [stdout]     | |__________________________________________________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
[INFO] [stdout]     |
[INFO] [stdout] help: consider introducing a named lifetime parameter and update trait if needed
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn extract_service_name<'a>(&self, session: &'a Session) -> ProxyResult<&'a str> {
[INFO] [stdout]     |                            ++++                  ++                          ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]    --> src/main.rs:224:11
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pool: deadpool::Pool<deadpool::managed::Object<CacheConnection>>,
[INFO] [stdout]     |           ^^^^^^^^ use of unresolved module or unlinked crate `deadpool`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `deadpool`, use `cargo add deadpool` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0061, E0195, E0277, E0308, E0404, E0407, E0412, E0422...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `proxy-server` (bin "proxy-server" test) due to 65 previous errors; 13 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "686006a1d4500b9a8200c0d09587fd9e18753b75d1e2332d94a9bad794e49120", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "686006a1d4500b9a8200c0d09587fd9e18753b75d1e2332d94a9bad794e49120", kill_on_drop: false }`
[INFO] [stdout] 686006a1d4500b9a8200c0d09587fd9e18753b75d1e2332d94a9bad794e49120
